#pragma once
#include<iostream>
#include<fstream>
#include"log.hpp"
#include<cstdlib>
//初始化本地字典到类中（unordered_map中）
#include<unordered_map>
std::string filename="./Dictionary.txt";
std::string sep=":";
extern Log lg;
static bool split(std::string& s,std::string*ptr1,std::string*ptr2)
{
    auto pos=s.find(sep);
    if(pos==std::string::npos)return false;//查找失败
    *ptr1=s.substr(0,pos);
    *ptr2=s.substr(pos+1);
    return true;
}
class Init
{
    public:
    Init()
    {
        //1.通过文件构建文件流
        std::ifstream in(filename);//同时打开文件？
        if(!in.is_open())
        {
            //打开失败
            lg(FATAL,"open file fail!!");
            exit(-1);
        }
        //2.遍历文件，提取每行，每行只有一个英文翻译，把英文跟翻译写入map的key value中
        std::string line;
        while(getline(in,line))
        {
            //把每行分割出来
            std::string ptr1,ptr2;
            split(line,&ptr1,&ptr2);
            dict_.insert({ptr1,ptr2});
        }
    }
    std::string translation(std::string &key)
    {
        auto iter=dict_.find(key);
        if(iter==dict_.end())return "Unknow";
        return iter->second;
    }

    ~Init()
    {
    }
    private:
    std::unordered_map<std::string,std::string> dict_;
};